Improving Automatic Software Repair with Probabilistic Symbolic Execution

نویسنده

  • Tobias Rudolph
چکیده

Automatic software repair techniques aim at repairing error-prone code automatically. In particular, test-based automatic software repair approaches use test cases to locate a bug and evaluate the automatically created repair code. However, this evaluation is only based on the successful or failing execution of the test cases but ignore the behavior of the software under the majority of of usage scenarios, which are not covered by the given test cases. Despite a variety of test-based program repair approaches have appeared in literature, the problem of a repair code altering the behavior of the program for uncovered scenarios has not addressed. This thesis introduces a new metric to quantify the discrepancy in the set of possible execution paths introduced by different repair candidates, and computes it from the source code of the program using probabilistic symbolic execution. This allows for an exhaustive analysis that takes into account also the behaviors not covered by the available test cases. The approach has been implemented extending Nopol, an opensource tool for test-based automatic software repair. The new approach has been evaluate on a set of Java benchmarks, demonstrating an improved quality of the computed program repairs, which do not only pass the tests but also limit as much as possible the alteration of the uncovered program behaviors.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Synergies among Testing, Verification, and Repair for Concurrent Programs (Dagstuhl Seminar 16201)

This report documents the program and the outcomes of Dagstuhl Seminar 16201 “Synergies among Testing, Verification, and Repair for Concurrent Programs”. This seminar builds upon, and is inspired by, several past seminars on program testing, verification, repair and combinations thereof. These include Dagstuhl Seminar 13021 “Symbolic Methods in Testing”; Dagstuhl Seminar 13061 “Fault Prediction...

متن کامل

Diagnosing Unreachable States Using Property-Directed Reachability

Probabilistic software analysis aims at quantifying how likely a target event is to occur, given a probabilistic characterization of the behavior of a program or of its execution environment. Examples of target events may include an uncaught exception, the invocation of a certain method, or the access to confidential information.We are working on a symbolic execution approach to probabilistic s...

متن کامل

Combining Symbolic Execution and Path Enumeration in Worst-Case Execution Time Analysis

This paper examines the problem of determining bounds on execution time of real-time programs. Execution time estimation is generally useful in real-time software verification phase, but may be used in other phases of the design and execution of real-time programs (scheduling, automatic parallelizing, etc.). This paper is devoted to the worst-case execution time (WCET) analysis. We present a st...

متن کامل

KLOVER: A Symbolic Execution and Automatic Test Generation Tool for C++ Programs

We present the first symbolic execution and automatic test generation tool for C++ programs. First we describe our effort in extending an existing symbolic execution tool for C programs to handle C++ programs. We then show how we made this tool generic, efficient and usable to handle real-life industrial applications. Novel features include extended symbolic virtual machine, library optimizatio...

متن کامل

1 Partial Execution - An Easy Partial Evaluation

Partial evaluation, also known as automatic specialization, is a particular collection of techniques for improving the performance of an application. With clear benefits, but unclear implementation up until now, partial evaluation is little used in current computing practice. This soon will change. Presented here is partial execution, an alternative to symbolic evaluation the technique driving ...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2016